package com.hcy.orderbusiness;

import com.hcy.ordermodel.dto.request.*;
import com.hcy.ordermodel.dto.response.*;
import com.hcy.rabbitbasicmodel.model.ResponseData;

import java.util.List;

/**
 * @Author huchenying
 * @Description
 * @Date 2021/12/23 0:32
 */
public interface OptOrderBz {
    AddOrderResponseDTO createOrder(com.hcy.ordermodel.dto.request.AddOrderRequestDTO requestDTO);

    SimpleOrderResponseDTO upDataOrderToStart(BindTrackRequestDTO requestDTO);

    SimpleOrderResponseDTO upDataOrderStatus(UpdateOrderRequestDTO requestDTO);

    HomeInfoResponseDTO findDriverHomeInfo(HomeInfoRequestDTO requestDTO);

    OrderInfoResponseDTO getOrderDetails(DriverOrderRequestDTO requestDTO);

    SimpleOrderResponseDTO finishOrder(UpdateOrderRequestDTO requestDTO);

    void autoCancelOrder(String orderNumber);

    ResponseData<SimpleOrderResponseDTO> updateOrderForAddDriver(AddDriverForOrderRequestDTO requestDTO);

    ResponseData<SimpleOrderResponseDTO> getSimpleOrder(String orderNumber);

    SimpleOrderResponseDTO upDateOriginPoint(UpdateOrderOriginPointRequestDTO requestDTO);

    ResponseData<OrderInfoResponseDTO> computerOrder(DriveComputerOrderRequestDTO requestDTO);

    PayOrderResponseDTO notPayOrder(String customerId);

    PayOrderResponseDTO getPayOrder(PayOrderRequestDTO payOrderNumber);

    SimpleOrderResponseDTO payOrder(PayOrderRequestDTO requestDTO);

    List<SimpleOrderResponseDTO> queryOrder(CustomerOrderListRequestDTO requestDTO);

    SimpleOrderResponseDTO customerCancelOrder(String orderNumber);

    SimpleOrderResponseDTO driverCancelOrder(String orderNumber);

    List<OrderInfoResponseDTO> getArriveOrderList(DriverOrderListRequestDTO requestDTO);
}
